Recently, performance of a built-in microcomputer has been enhanced. There has been also developed an integrated circuit in which a customizable element is combined with a conventional ASIC (Application Specific Integrated Circuit). Examples of the built-in microcomputer include a RISC microcomputer (Reduced Instruction Set Computer-microcomputer) and a DSP (Digital Signal Processor). Examples of the integrated circuit include an FPGA (Field Programmable Gate Array) and an SoC (System-on-a-Chip).
Currently, using the built-in microcomputer and the integrated circuit, a motor drive device includes various automatic adjustment functions in addition to a basic function when driving the servo motor based on an external command. As used herein, the basic function means position control, speed control, and current control in which drive of a servo motor is controlled.
FIG. 19 is a block diagram illustrating a conventional motor drive device.
As illustrated in FIG. 19, motor drive device 1002 includes the basic function of controlling the drive of motor 3. In FIG. 19, basic performance is implemented by the following flow in which blocks are connected to each other by a solid line using a block surrounded by a singlet.
Host device 1 transmits an external position command to motor drive device 1002. The external position command transmitted from the host device 1 is received by command selector 21 of motor drive device 1002. Command selector 21 selects one of internal position command transmitted from test run function 211 (to be described later) and the external position command transmitted from host device 1. Command selector 21 transmits one of the internal position command and the external position command, which is selected by command selector 21, to command response setting unit 22 as a post-selection position command.
Command response setting unit 22 performs filter calculation processing on the post-selection position command. After performing the filter calculation processing in command response setting unit 22, command response setting unit 22 transmits a result of the filter calculation processing to position and speed controller 23 as a post-filter position command.
Position and speed controller 23 performs a feedback control calculation using the received post-selection position command and motor positional information transmitted from encoder 4. A feedback control calculation is typified by PID control (Proportional Integral Derivative Controller). After performing the feedback control calculation in position and speed controller 23, position and speed controller 23 transmits a torque command to load characteristic compensator 24 such that a position deviation becomes zero.
Load characteristic compensator 24 performs scaling processing on the torque command transmitted from position and speed controller 23 in accordance with total inertia. As used herein, the total inertia means inertia of the motor 3 or a load 5, and the like. Load characteristic compensator 24 performs the scaling processing to absorb a difference of load inertia.
Load characteristic compensator 24 estimates friction torques of motor 3 and load 5 from the motor positional information transmitted from encoder 4. Load characteristic compensator 24 previously adds the estimated friction torque to generate a post-compensation torque command. Load characteristic compensator 24 transmits the generated post-compensation torque command to resonance suppressor 25.
Sometimes a vibration is caused by resonance characteristics of motor 3 and load 5. Resonance suppressor 25 performs notch filter processing or low-pass filter processing of removing a specific frequency component from the post-compensation torque command such that the vibration is not excited. Resonance suppressor 25 transmits a result of the notch filter processing or low-pass filter processing to the motor 3 as a post-filter torque command.
Motor 3 is controlled through current control in which the post-filter torque command transmitted from resonance suppressor 25 is used or a power circuit. Motor 3 is controlled so as to output the same torque as the received post-filter torque command. Motion of motor 3 is transmitted to connected load 5 or encoder 4. The motion of motor 3 is fed back to motor drive device 1002 as a motor positional information through encoder 4.
As illustrated in FIG. 19, motor drive device 1002 includes an automatic adjustment function. In FIG. 19, the automatic adjustment function is implemented by the following flow in which blocks are connected to each other by a broken line using a block surrounded by a doublet.
For example, as disclosed in PTL 1, test run function 211 generates a reciprocating running pattern in motor drive device 1002. The reciprocating running pattern is a fixed amount of triangular wave having acceleration or deceleration with a certain inclination. The reciprocating running pattern has positive and negative levels.
Generally, in test run function 211, when an external parameter is set, a command pattern is automatically calculated in real time through NC calculation processing incorporated in motor drive device 1002. As used herein, the external parameter means a movement amount, a maximum speed, an acceleration time, a deceleration time, a stopping time, and the like. Test run function 211 is a function of generating the internal position command in each given period.
When the internal position command is transmitted from test run function 211 to command selector 21, test run function 211 can also transmit additional information such that command selector 21 selects the internal position command. When the additional information is transmitted, an operation of command selector 21 can be designed from test run function 211.
For example, as disclosed in PTL 2, command response setting function 221 determines a cutoff frequency of a command prefilter that determines responsiveness of a position command. One indicator called a stiffness value is provided to command response setting function 221 from the outside of motor drive device 1002. Command response setting function 221 determines the cutoff frequency of the command prefilter from the provided stiffness value and a table incorporated in motor drive device 1002.
Generally, command response setting function 221 automatically sets one or a plurality of parameters of command response setting unit 22 by receiving one or a plurality of command response indicators indicated by the following form. In some forms in which the command response indicator is received, an instruction of a finer frequency characteristic is issued with a first-order or second-order lag filter time constant or a damping ratio. In other forms in which the command response indicator is received, an instruction of transient characteristic of time response such as a rise time, a delay time, and an overshoot amount is issued. Command response setting function 221 automatically sets one or a plurality of parameters of command response setting unit 22 such that a transmission or reception relationship with command response setting unit 22 is matched with the command response indicator as much as possible.
For example, as disclosed in PTL 3, in stiffness setting function 231, one parameter typifying servo stiffness is used as the indicator. Stiffness setting function 231 multiplies one parameter typifying the servo stiffness by a given ratio to set a speed proportional gain, a speed integral gain, and a position proportional gain in synchronization with one another. As disclosed in PTL 2, a gain of a position and speed controller 23 may be set from the table corresponding to the stiffness value.
Generally, stiffness setting function 231 receives one or a plurality of stiffness indicators, and automatically sets one or a plurality of parameters of position and speed controller 23 such that a disturbance response of position and speed controller 23 is matched with the stiffness indicator as much as possible.
For example, as disclosed in PTL 4, load characteristic measuring function 241 can automatically estimate a friction characteristic from the post-filter torque command transmitted to motor 3, the motor positional information transmitted from encoder 4, and the speed and acceleration that are of a high-order difference of the motor positional information using least square estimation. As used herein, the friction characteristic means a total inertia in which inertia of motor 3, the inertia of load 5, and the like are summed up, a biased load torque which always acts constantly, a kinetic friction torque depending on an operation direction, a viscous friction torque proportional to an operation speed, and like.
Load characteristic measuring function 241 reflects the estimated result in load characteristic compensator 24 in real time. Therefore, load characteristic measuring function 241 has adaptive robustness in which the identical responsiveness designated by the command response indicator or stiffness indicator can be obtained even if any load 5 is connected to motor 3.
For example, as disclosed in PTL 5, adaptive filter function 251 automatically adjusts the parameter of resonance suppressor 25 using an adaptive algorithm, in which a recursive notch filter is used, such that a high-frequency component extracted from a motor speed is brought close to zero as much as possible. Adaptive filter function 251 has the following variations. In one of the variations, a vibration component is extracted from the torque command. In another variation, the vibration component is extracted from a difference with a model response. In still another variation, a plurality of adaptive filters is included. In yet another variation, a width, a depth, and a Q value are automatically adjusted in addition to a notch frequency.
Generally adaptive filter function 251 extracts the vibration component caused by the resonance characteristics of motor 3 and load 5 by some kind of method. Adaptive filter function 251 automatically sets a filter parameter of resonance suppressor 25 using an adaptive algorithm for minimizing a difference with a normative input.
For example, as disclosed in PTL 6, oscillation detecting function 26 extracts a fluctuation component from the motor positional information transmitted from encoder 4. Oscillation detecting function 26 detects oscillation states of motor 3 and load 5 by a comparison between the extracted fluctuation component and a threshold, a determination of a duration, and the like.
When oscillation detecting function 26 detects the oscillation, oscillation detecting function 26 transmits oscillation detection information to stiffness setting function 231 mentioned above. Thus, oscillation detecting function 26 selects the stiffness value such that a frequency band width of a feedback loop is narrowed, and automatically suppresses the oscillation.
For example, as disclosed in PTL 7, evaluation indicator measuring function 27 periodically measures and stores input and output data. Evaluation indicator measuring function 27 is function to calculate, display, and accumulate an evaluation value from the input and output data corresponding to the evaluation indicator. As used herein, the input and output data means the position command output of command selector 21, the motor position output of encoder 4, the torque command output of load characteristic compensator 24, and the like. As used herein, the evaluation indicator means a settling time, an overshoot, a torque fluctuation, and the like. One of the important features of the present function is that data is compressed to fewer meaningful evaluation indicators from a huge amount of motor control information that can be obtained in real time.
For example, PTL 8 discloses a method for adjusting a gain parameter value corresponding to the stiffness indicator and a target response characteristic adjustment gain corresponding to the command response indicator.